//
//  JCGCDUtil.h
//  JCPublicKit-Objc
//
//  Created by JasonLee on 2020/4/24.
//

#import <Foundation/Foundation.h>

/**
 GCD的封装
 */
@interface JCGCDUtil : NSObject

/**
 在主线程异步执行
 @param block 操作闭包
 @version 0.1.1
 */
+ (void)onMainAsync:(void (^ _Nonnull)(void))block;
/**
 在自定义线程异步执行
 @param queue 线程
 @param block 操作闭包
 @version 0.1.1
 */
+ (void)asyncOnQueue:(dispatch_queue_t _Nonnull)queue block:(void (^ _Nonnull)(void))block;
/**
 若干时间后在主线程执行
 @param delay 延迟时间
 @param block 操作闭包
 @version 0.1.1
 */
+ (void)onMainAfterDelay:(int64_t)delay block:(void (^ _Nonnull)(void))block;
/**
 若干时间后在主线程执行
 @param delay 延迟时间
 @param queue 线程
 @param block 操作闭包
 @version 0.1.1
 */
+ (void)afterDelay:(int64_t)delay onQueue:(dispatch_queue_t _Nonnull)queue block:(void (^ _Nonnull)(void))block;

@end
